package cn.stylefeng.guns.sys.modular.system.mapper;

import cn.stylefeng.guns.sys.modular.system.entity.Task;
import cn.stylefeng.guns.sys.modular.system.entity.TaskStatus;
import cn.stylefeng.guns.sys.modular.system.model.params.TaskParam;
import cn.stylefeng.guns.sys.modular.system.model.result.TaskResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author jiangge
 * @since 2020-09-10
 */
@Mapper
public interface TaskMapper extends BaseMapper<Task> {

    /**
     * 获取列表
     *
     * @author jiangge
     * @Date 2020-09-10
     */
    List<TaskResult> customList(@Param("paramCondition") TaskParam paramCondition);

    /**
     * 获取map列表
     *
     * @author jiangge
     * @Date 2020-09-10
     */
    List<Map<String, Object>> customMapList(@Param("paramCondition") TaskParam paramCondition);

    /**
     * 获取分页实体列表
     *
     * @author jiangge
     * @Date 2020-09-10
     */
    Page<TaskResult> customPageList(@Param("page") Page page, @Param("paramCondition") TaskParam paramCondition);

    /**
     * 获取分页map列表
     *
     * @author jiangge
     * @Date 2020-09-10
     */
    Page<Map<String, Object>> customPageMapList(@Param("page") Page page, @Param("paramCondition") TaskParam paramCondition);

    List<Integer> listIdsByRole(@Param("roleid") Long roleid);

    /**
     * 新增任务信息
     * @param taskStatus
     * @return
     */
    int addRent(TaskStatus taskStatus);

    /**
     * 查询该工程是否已经填写信息
     * @param proId
     * @return
     */
    int getRent(@Param("proId")Integer proId, @Param("taskId") Integer taskId);

    /**
     * 查询该任务名称是否存在
     * @param taskName
     * @return
     */
    int selectName(@Param("taskName") String taskName);

    /**
     * 督导工程部页面
     * @param proId
     * @return
     */
    List<TaskStatus> taskList(@Param("proId") Integer proId, @Param("roleId") Long roleId);

    int addRentList(@Param("list") List<TaskStatus> taskStatuses);

    /**
     * 该工程中是否存在此名称
     * @param proId
     * @return
     */
    int selectTaskName(@Param("taskName")String taskName, @Param("proId") Integer proId);

    /**
     * 查询店名
     * @param proId
     */
    String selectDm(Integer proId);

    /**
     * 根据店名查询ProID
     * @param name
     * @return
     */
    int selectProId(String name);

    int select(@Param("proId")int proId);

    String getRoleId(Long userId);

    List<TaskStatus> getList(@Param("list") List list,@Param("proId") Integer proId);
}
